Filozofie operačního systému Unix se od filozofie jiných operačních systémů podstatně liší v jedné věci. Autoři Unixu se nepokoušeli předvídat všechny potřeby všech uživatelů. Místo toho se pokusili navrhnout operační systém tak, aby si každý uživatel pracovní prostředí svého operačního systému snadno upravil sám podle svých potřeb.
Konfigurace jednotlivých programů operačního systému Unix se definuje prostřednictvím tzv. konfiguračních souborů. Toto je asi nejtypičtější rys všech unixových systémů.
V Unixu bývají konfigurační soubory různého typu:
nazev.ininazevrc.nazev nebo kombinace s “rc” .nazevrcnazev.conf nebo (méně často) nazev.cfNejdůležitější konfigurační soubory jsou ty, které používá příkazový interpret. No a tímto je v operačním systému Linux bash (/usr/bin/bash).
Mezi další soubory vašeho profilu patří tyto. Pod pojmem “soubor” chápejte “skript”:
~/.bashrc
Tento soubor je spuštěn při přihlášení uživatele pomocí shellu Bash. Je často používán k inicializaci prostředí nebo nastavení různých proměnných prostředí, které mají být k dispozici během celého sezení. Není doporučené jej upravovat. Neodbornou úpravou si můžete váš profil poškodit.
~/.bash_profile
Tento soubor je spuštěn při přihlášení uživatele pomocí shellu Bash. Je často používán k inicializaci prostředí nebo nastavení různých proměnných prostředí, které mají být k dispozici během celého sezení.
~/.profile
Tento soubor je spouštěn při přihlášení uživatele bez ohledu na to, který shell je používán. Obsahuje obecné inicializační příkazy pro uživatelské prostředí, jako je nastavení cest (PATH), inicializace X Window System (grafické uživatelské rozhraní) nebo nastavení jazyka a lokalizace.
~/.bash_history
Tento soubor obsahuje historii příkazů, které uživatel zadává do shellu Bash. Každý úspěšně provedený příkaz se automaticky zaznamenává do tohoto souboru, což umožňuje uživatelům procházet a opakovat dříve zadávané příkazy.
~/.bash_login
Tento soubor je spuštěn pouze při přihlášení uživatele pomocí shellu Bash. Má podobnou funkci jako ~/.bash_profile a často se používá k inicializaci prostředí pro interaktivní sezení.
~/.bash_logout
Tento soubor je spuštěn při odhlášení uživatele ze shellu Bash. Typické využití zahrnuje čištění dočasných souborů, ukládání historie nebo provádění jiných úkonů před ukončením sezení.
~/.ssh/config
Soubor ~/.ssh/config slouží k nastavení konfigurace pro klienta SSH (Secure Shell). Jeho hlavním účelem je umožnit uživatelům definovat různé parametry připojení pro jednotlivé vzdálené servery, což usnadňuje a zjednodušuje proces připojování se k nim. Více informací v tématu “SSH klíče”.
Ne nutně všechny tyto soubory ve vašem profilu najdete. Pokud tam není ten, který potřebujete použít, pak jej prostě vytvoříte. Jak prosté 😃
.bash_profileSoubor ~/.bash_profile slouží k nastavení uživatelského prostředí pro shell Bash, který se spustí při přihlášení uživatele do systému. Obsahuje nastavení proměnných prostředí, definice aliasů, spouštění programů nebo skriptů a další úkoly, které mají být provedeny při každém přihlášení uživatele. Tímto způsobem umožňuje uživatelům přizpůsobit své pracovní prostředí a provést automatické inicializační kroky při každém spuštění shellu.
Nyní si ukážeme několik užitečných úprav a „vylepšení“ .bash_profile:
Pomocí tzv. aliasů můžete vytvořit nebo upravit příkazy, které píšete do terminálu. Aliasy vkládejte na konec souboru ~/.bash_profile). Syntaxe aliasu je následující:
alias prikaz="upraveny prikaz"
nebo
alias prikazA="prikazB"
Několik příkladů:
alias ll="ls -lh" … výpis s podrobnostmi v “lidských” jednotkách kB, MBalias rm="rm -i" … každý soubor před smazáním potvrzovat y/nalias uprav="nano" … editor nano spouštět i aliasem upravTakovýchto „vylepšení“ si můžete vytvořit libovolný počet.
⚠️ POZNÁMKA: Všechny změny v souboru .bash_profile se projeví (aktivují) až při příštím přihlášení uživatele do terminálu. Rychlejším způsobem aktivace je příkazem source:
$ source ~/.bash_profile
vždy po úpravě v souboru .bash_profile.
V Debianu (a jeho odvozeninách) vypadá prompt nějak takto:
uzivatel@pocitac:~$
V distribuci Fedora vypadá nějak takto:
[uzivatel@pocitac ~]$
Na TuXovi takto:
jmeno@tux ~
$
Jinými slovy, vzhled, množství a pořadí informací se může lišit. Pokud vám stávající vzhled promptu nevyhovuje, není problém si vytvořit vlastní. Například ten v Debianu má kód:
PS1="\[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[33;1m\]\w\[\e[m\]\n$ "
Ano, kód vypadá dost krkolomně. Většinu kódu tvoří definice barev. Bez nich by řádek vypadal mnohem srozumitelněji:
PS1="\u@\h:\w\n$ "
Konkrétní kód vašeho profilu (systémovou proměnnou $PS1) si můžete jednoduše vypsat:
$ echo $PS1
V promptu můžete kromě běžných znaků jako @ a :, použít různé speciální kódy, které budou nahrazeny aktuálními informacemi o vašem systému nebo prostředí. Seznam některých běžně používaných:
\u … jméno aktuálně přihlášeného uživatele (user).\h … název počítače (hostname) do kterého je přihlášen.\w … aktuální pracovní adresář (working directory).\d … aktuální datum ve formátu den_týdne měsíc den.\t … aktuální čas ve formátu HH:MM:SS.\n … přidá nový řádek.\[\e[XXm\] … Změní barvu textu, kde XX je kód barvy: 30 černá, 31 červená, 32 zelená, 33 žlutá, 34 modrá, 35 fialová, 36 azurová, 37 bílá. Kódy tučného písma nebo barev pozadí textu jsou uvedeny v tabulce níže.\[\e[m\] … resetuje barvu textu na defaultní.$ … běžnému uživateli se zobrazí znak $, rootovi znak #. V obou případech se používá znak $.Další kódy barev:
| Barva | Běžné písmo | Tučné písmo | Podtržení | Pozadí písma |
|---|---|---|---|---|
| Black | "\e[0;30m\]" |
"\e[1;30m\]" |
"\e[4;30m\]" |
"\e[40m\]" |
| Red | "\e[0;31m\]" |
"\e[1;31m\]" |
"\e[4;31m\]" |
"\e[41m\]" |
| Green | "\e[0;32m\]" |
"\e[1;32m\]" |
"\e[4;32m\]" |
"\e[42m\]" |
| Yellow | "\e[0;33m\]" |
"\e[1;33m\]" |
"\e[4;33m\]" |
"\e[43m\]" |
| Blue | "\e[0;34m\]" |
"\e[1;34m\]" |
"\e[4;34m\]" |
"\e[44m\]" |
| Purple | "\e[0;35m\]" |
"\e[1;35m\]" |
"\e[4;35m\]" |
"\e[45m\]" |
| Cyan | "\e[0;36m\]" |
"\e[1;36m\]" |
"\e[4;36m\]" |
"\e[46m\]" |
| White | "\e[0;37m\]" |
"\e[1;37m\]" |
"\e[4;37m\]" |
"\e[47m\]" |
Reset barvy: "\e[0m\]"
TIP: Pokud vám paleta barev nestačí, můžete použít RGB notaci: \e[s;38;2;r;g;bm
Kde s je styl a r,g,b jsou desítková čísla v rozsahu 0-255. Aby nebyl řádek PS1= příliš dlouhý (a tudíž nepřehledný), je výhodnější si barvy uložit do proměnných a v řádku PS1= se na ně pouze odkazovat. Jsme přeci v prostředí bashe :):
R="\[\e[38;2;255;100;100m\]"
G="\[\e[38;2;100;255;100m\]"
B="\[\e[38;2;100;100;255m\]"
W="\[\e[0m\]"
PS1="[$R\u$W@$B\h$W:$G\w$W]$ "
Problematika barev v terminálu je mnohem rozsáhlejší. Pro zájemce odkazy:
Editujte soubor ~/.bash_profile a zapište do něj kód výše (ten v té tabulce). Uložte a aktivujte:
$ nano ~/.bash_profile
$ source ~/.bash_profile
Příkazem select-editor se vám zobrazí nabídka textových editorů (i těch nenainstalovaných):
Select an editor. To change later, run 'select-editor'.
1. /usr/bin/joe
2. /usr/bin/jstar
3. /usr/bin/jpico
4. /usr/bin/jmacs
5. /bin/nano <---- easiest
6. /usr/bin/vim.basic
7. /usr/bin/rjoe
8. /usr/bin/mcedit
9. /usr/bin/vim.tiny
Choose 1-9 [5]:
Zvolte si jeden z nainstalovaných (v Debianu je zcela jistě nainstalovaný nano). Tím se ve vašem domovském adresáři vytvoří soubor .selected_editor s obsahem:
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/nano"
Nastavení je platné okamžitě, není nutné ji aktivovat.
Na našem systému máme výpis hezky barevný. Toto není automatický a výchozí vzhled. Pokud jste v terminálu, který není barevný, můžete si je snadno přidat.
Příkaz ls --color=always ve výchozím nastavení vypíše obsah adresáře barevně, kde
Chcete-li změnit barvy podle potřeby z výchozího nastavení, musí být nastaveny dvě proměnné prostředí, a to CLICOLOR a LSCOLORS.
Do ~/.bash_profile přidejte následující řádky:
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
Uložte jej a aktivujte:
$ source ~/.bash_profile
Poznámka: Co znamená zdánlivě nesrozumitelný kód GxFxCxDxBxegedabagaced? Hodnota této proměnné popisuje, jaká barva se má použít pro který atribut, když jsou barvy povoleny pomocí CLICOLOR. Tento řetězec je zřetězením dvojic formátu fb, kde f je barva popředí a b je barva pozadí.
Barevná označení jsou následující:
Pořadí dvojic je následující:
Celkem 22 znaků (jedenáct dvojic)
Zdroj: https://stackoverflow.com/questions/54818298/how-to-color-ls-according-to-file-extension-in-iterm2
.nanorcNano je uživatelsky přívětivý textový editor s jednoduchým uživatelským rozhraním, který nabízí základní funkce pro úpravu textu v terminálu. Jeho vzhled se dá nastavit pomocí různých kódů set <hodnota>, viz https://www.nano-editor.org/dist/latest/nanorc.5.html
Do konfiguračního souboru ~/.nanorc si uložte tyto řádky (používám já):
set softwrap
set linenumbers
set numbercolor yellow
set tabsize 4
set tabstospaces
set titlecolor blue, cyan
set keycolor cyan
set functioncolor cyan
set smarthome
Poznámka: Výše popsané se týká vzhledu a chování editoru jako takového. Barevné zvýraznění obsahu editovaného souboru je automatické (nastavuje se jinak a jinde).
Nano nastavuje barevné zvýraznění syntaxe pomocí konfiguračních souborů s příponou .nanorc, které se v Debianu nacházejí v adresáři /usr/share/nano/ (v jiných distribucích mohou být v /etc/nano/):
$ ls /usr/share/nano/
asm.nanorc email.nanorc makefile.nanorc po.nanorc
autoconf.nanorc extra man.nanorc python.nanorc
awk.nanorc go.nanorc markdown.nanorc ruby.nanorc
changelog.nanorc groff.nanorc nanohelp.nanorc rust.nanorc
cmake.nanorc guile.nanorc nanorc.nanorc sh.nanorc
c.nanorc haskell.nanorc nftables.nanorc sql.nanorc
css.nanorc html.nanorc objc.nanorc tcl.nanorc
debian java.nanorc ocaml.nanorc texinfo.nanorc
debian.nanorc javascript.nanorc patch.nanorc tex.nanorc
default.nanorc json.nanorc perl.nanorc xml.nanorc
elisp.nanorc lua.nanorc php.nanorc yaml.nanorc
Úprava: pokud z nějakého důvodu chcete upravit systémový soubor nazev.nanorc, postupujte takto (příklad pro soubor c.nanorc):
~/.nanoc.nanorc: cp /usr/share/nano/c.nanorc ~/.nano/~/.nanorc přidejte cestu ke konfiguračnímu souboru c.nanorc. Například, pokud je soubor c.nanorc uložený v adresáři ~/.nano, přidejte řádek include ~/.nano/c.nanorc.